﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data.SqlClient;
using System.Configuration;

namespace sistemaAcademicoFinanceiroEscolas
{
    public partial class recibo : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {


            SqlConnection sqlRecibo = new SqlConnection(ConfigurationManager.AppSettings["baseDados"]);
            sqlRecibo.Open();
            SqlConnection sqlRecibo2 = new SqlConnection(ConfigurationManager.AppSettings["baseDados"]);
            sqlRecibo2.Open();
            
            //Resgatar os Valores
            string q = "select cpa.codigoPagamentoAluno, cpa.codigoMatricula, m.codigoMatricula, ";
            q = q + "a.nomeAluno, m.codigoAluno, a.codigoAluno, cpa.valorPagamentoAluno, ";
            q = q + "cpa.dataVencimentoAluno, cpa.dataPagamentoAluno, me.codigoMensalidadeValor, ";
            q = q + "cpa.codigoMensalidade, me.juroMoraMensalidade, me.juroDiarioMensalidade ";
            q = q + "from pagamentoAluno cpa, matricula m, aluno a, mensalidade me ";
            q = q + "where m.codigoMatricula = cpa.codigoMatricula ";
            q = q + "and ";
            q = q + "m.codigoAluno = a.codigoAluno ";
            q = q + "and ";
            q = q + "cpa.codigoMensalidade = me.codigoMensalidadeValor ";
            q = q + "and ";
            q = q + "cpa.codigoPagamentoAluno = " + Request["codigoPagamentoAluno"];   

            

            SqlCommand cmd = new SqlCommand(q, sqlRecibo);
            SqlDataReader myReader = cmd.ExecuteReader();

           

           
            

            while (myReader.Read())
            {
                string codigoMatricula = myReader["codigoMatricula"].ToString();

                lblValor.Text = myReader["valorPagamentoAluno"].ToString();

                DateTime Hoje = DateTime.Now;
                string dataAtual = Hoje.ToString("dd/MM/yyyy");

                lblData.Text = Hoje.ToString("dd/MM/yyyy");  // myReader["dataPagamentoAluno"].ToString();

                DateTime dt = Convert.ToDateTime(myReader["dataPagamentoAluno"].ToString());
                lblMes.Text = dt.ToString("dd/yy");

                lblNomeDoAluno.Text = myReader["nomeAluno"].ToString();

                string quantidadeMateriasProgressao = "select count(*) from progressao where codigoMatricula = " + codigoMatricula;

                string progre = "select (select count(*) from progressao where codigoMatricula = " + codigoMatricula + ") as quantidade, prog.codigoValorProgressao, val.codigoValorProgressao ,prog.codigoMatricula, val.progressaoValor from progressao prog, valorProgressao val";
                progre = progre + " where prog.codigoValorProgressao = val.codigoValorProgressao ";
                progre = progre + "and prog.codigoMatricula =" + codigoMatricula;

                SqlCommand cmdProg = new SqlCommand(progre, sqlRecibo2);
                SqlDataReader myReaderProg = cmdProg.ExecuteReader();


                double prog = 0;
                while (myReaderProg.Read())
                {
                    double quantidade = Convert.ToDouble(myReaderProg["quantidade"]);
                    lblProg.Text = (quantidade * Convert.ToDouble(myReaderProg["progressaoValor"].ToString())).ToString();
                    string progressaoValor = (quantidade * Convert.ToDouble(myReaderProg["progressaoValor"].ToString())).ToString();

                    if (progressaoValor == "")
                    {
                        progressaoValor = "0";
                    }

                   prog = Convert.ToDouble(progressaoValor);
                }

                myReaderProg.Close();

                double mora = 0;
                double multa = 0;

                TimeSpan diff = Convert.ToDateTime(myReader["dataPagamentoAluno"].ToString()) - Convert.ToDateTime(myReader["dataVencimentoAluno"].ToString());
                if (diff.Days > 0)
                {
                    int a = Convert.ToInt32((diff.Days) / 30);
                    multa = a * ((Convert.ToDouble(myReader["juroDiarioMensalidade"].ToString()) / 100) * (Convert.ToDouble(myReader["valorPagamentoAluno"].ToString())));
                   if (diff.Days > 30)
                   {
                    mora = ((diff.Days)*((Convert.ToDouble(myReader["juroMoraMensalidade"])/100)));
                  }
                }
                //lblMulta.Text = multa.ToString();
                //lblMora.Text = mora.ToString();

                
                double parci =  mora + multa + prog;

                string mudarVirgula = myReader["valorPagamentoAluno"].ToString().Replace(",", ".");
                double valor = Convert.ToDouble(mudarVirgula);
                //double total = parci + valor;
                double total2 = prog + valor;


                validarValores vV = new validarValores();
                lblTotal.Text = vV.validar(total2.ToString());
            }


            myReader.Close();

            if (Request["mes"].ToString() == "False")
            {
                lblProg.Visible = false;
            }






            sqlRecibo.Close();
            sqlRecibo2.Close();
            
            
        }

        protected void btnDefinir_Click(object sender, EventArgs e)
        {
            

                string literalc = "<script language=JavaScript>acaoImprimir();</script>";
                form1.Controls.Add(new LiteralControl(literalc));
            }
            
            }
        }
    



                    
